查看原文
其他

开始迁移到 Kotlin | Kotlin 迁移指南 (中篇)

Android 谷歌开发者 2020-09-20
今年五月份的 Google I/O 上,我们正式向全球宣布 Kotlin-first 的这一重要理念,Kotlin 将成为 Android 开发者的首选语言,十月份举办的 Android Dev Summit 2019 大会上,我们发布了使用 Kotlin API 开发的 Jetpack Compose 开发者预览版。


我们于近期开始连载了关于 Kotlin 迁移指南的系列文章,帮助开发者们顺利迁移并开始使用 Kotlin 构建 Android 应用。本篇是本系列的中篇,我们将为您介绍如何迁移到 Kotlin,以及提供相关的学习资源。您可以点击这里查看上篇我们对 Kotlin 的优势和介绍文章,也请关注接下来关于使用 Kotlin 的常见问题的推送。



谁在用 Kotlin


开发者可能对新的语言有一定程度的保留态度,这也是我们非常清楚的一点。所以当我们宣布将 Kotlin 做为 Android 开发的首选语言时,我们也会确保开发者在尽享 Kotlin 强大功能的同时,也不会遇到兼容性和迁移方面的困扰,这里我们给出一些将您的项目迁移至 Kotlin 的建议和方法。


因为 Kotlin 的这些优势与强大的语言特性,现在在 Google Play 上排名前 1000 位的应用中,有 44% 已经在使用 Kotlin 进行开发。在 2019 年 OSCON 大会上,Kotlin 更是荣获 “年度突破项目” 奖。


除了在技术上使用 Kotlin 语言特性开发了一些方便开发者的库之外,Google 也已经在自己的产品中广泛采用 Kotlin。

不仅如此,我们在九月份的谷歌开发者大会 (GDD) 上也分享了诸多使用 Kotlin 构建的应用 —— 其中包括部分中国开发者的热门应用:


开始做 Kotlin 迁移


一个已经在使用 Java 进行开发的 Android 应用团队该如何快速稳定地转而使用 Kotlin 呢?我们给出的建议是 ”由点及面”,这里包括人和代码两个层面:


人的层面,我们建议团队内部推举出一位 Kotlin “推广大使”,他/她需要做到:

  • 了解 Kotlin 并成为专家
  • 制定 Kotlin 开发流程
  • 参与代码审核,确保 Kotlin 开发流程得到顺利贯彻
  • 组建公司/团队内部的学习小组
  • 主动收集内部的问题并与开发者社区反馈探讨


代码层面,也需要循序渐进:

  • 先使用 Kotlin 编写测试 (这时的工程依然在使用 Java)
  • 使用 Kotlin 编写新代码
  • 将现有代码更新为 Kotlin 代码


在将现有代码更新为 Kotlin 代码时,Android Studio 提供了 Java 转 Kotlin 的工具,只需要在菜单中选择 “Code → Convert Java File to Kotlin File” 即可:

△ Java 转 Kotlin 工具
另外,Kotlin 的迁移工作没必要一蹴而就,开发者可以按照自己的进度来逐步进行迁移。一个项目中可以同时包含 .java 和 .kt 文件 (但同一个文件中不可以既有 Java 也有 Kotlin),开发者也可以在 Kotlin 代码中使用任何 Java 库。

△ Android Studio 的 Lint 检查中也可以打开 Kotlin 互操作检查

在 Kotlin 中调用 Java 时,有几点需要注意:
  • 请将代码标记为 @Nullable 和 @NotNull

  • 使用属性前缀 (getName(), setName(), isActive())

  • 避免使用 Kotlin 中的保留关键字 (when, is, 等)


更详细的 Kotlin 互操作指南请查阅 Android 开发者网站:
  • Kotlin 互操作指南
    https://developer.android.google.cn/kotlin/interop


最后——如何说服管理层采用 Kotlin?这里我们给出了几个使用 Kotlin 的核心优势以供参考:
  • 提高团队工作效率,使用 Kotlin 的话,编码的量会减少,对应的维护和测试工作量也会减少。

  • 提升应用品质,Kotlin 内建的强大功能会帮助开发者更轻松地开发出稳定精彩的应用。

  • 让团队氛围更融洽。更现代、更强大且拥有强大兼容性的开发语言能让团队内的沟通更为顺畅。

  • 顺应迁移到 Kotlin 的行业趋势。事实上现在不论是招募方还是求职方,对 Kotlin 技能的需求也已经越来越多。


关于 Kotlin 推广大使和如何说服管理层使用 Kotlin 的更详细内容,请参考我们之前发布的文章《如何在大型应用中添加 Kotlin》。



Kotlin 学习资源


我们为大家准备了丰富的 Kotlin 学习资源,以满足各个阶段开发者的需求。


Udacity 在线 Kotlin 课程,完全免费。从新手营到开发完整应用的课程均有覆盖。
  • Udacity Kotlin 课程
    https://cn.udacity.com/course/kotlin-bootcamp-for-programmers--ud9011


“重构为 Kotlin” Codelab。这是一套中文 Codelab 课程,一步一步帮助大家亲手将代码重构为 Kotlin。

  • “重构为 Kotlin” Codelab
    https://developer.android.google.cn/codelabs/java-to-kotlin

“使用 Kotlin 开发 Android 应用” 的官方文档。从互用性到使用场景均有详细的覆盖,另外还提供大量的示例代码。


  • 使用 Kotlin 开发 Android 应用
    https://developer.android.google.cn/kotlin


参加由社区自发组织的 “Kotlin/Everywhere” 系列线下活动,我们欢迎开发者伙伴们面对面交流 Kotlin 的学习和使用。

另外,如果您希望打下扎实的 Kotlin 语法基础的话,我们也建议您使用 Kotlin Koans 进行在线练习。您可以直接在浏览器里做练习,也可以通过插件在 IntelliJ IDEA 或者 Android Studio 里练习。


  • Kotlin Koans

    https://kotlinlang.org/docs/tutorials/koans.html


我们在近期举办的 Google 开发者大会上也有一个关于迁移到 Kotlin 的演讲,您可以在☟下面☟回顾:

  • 腾讯视频链接
    https://v.qq.com/x/page/n3014axorwo.html
  • Bilibili 视频链接
    https://www.bilibili.com/video/av68058669/

请持续关注我们接下来发布的与 Kotlin 迁移指南相关的文章。


如果您对在 Android 开发中使用 Kotlin 有任何疑问或者想法,欢迎在评论区和我们分享。

 点击屏末 | 阅读原文 | 即刻使用 Kotlin 打造精彩 Android 应用

  想了解更多 Android 内容?


  • 在公众号首页发送关键词 “Android”,获取相关历史技术文章;

  • 还有更多疑惑?欢迎点击菜单 “联系我们” 反馈您在开发过程中遇到的问题。

推荐阅读




    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存